﻿using System.Collections.Generic;
using Sinacor.Infra.UI.Common;
using Sinacor.UI.Bovespa.Contabil.Communication.Bovespa.Contabil.ContaContabil;

namespace Sinacor.UI.Bovespa.Contabil.Communication.Translator.ModelToDataContract
{
    /// <summary>
    /// Translator.ModelToDataContract Class - ContaContabil
    /// </summary>
    public class ContaContabil
    {
        #region Métodos Públicos

        /// <summary>
        /// Traduz uma Model.Parameter do tipo FiltroContaContabil para um contrato de dados do tipo FiltroContaContabilRequest.
        /// </summary>
        /// <param name="parameter">Model.Parameter.FiltroContaContabil</param>
        /// <returns>FiltroContaContabilRequest</returns>
        public FiltroContaContabilRequest ToFiltroContaContabilRequest(Model.Parameter.FiltroContaContabil parameter)
        {
            FiltroContaContabilRequest filtroContaContabilRequest = new FiltroContaContabilRequest();

            filtroContaContabilRequest.CodigoResumido = parameter.CodigoResumido;
            filtroContaContabilRequest.Digito = parameter.Digito;
            filtroContaContabilRequest.NomeConta = parameter.NomeConta;
            filtroContaContabilRequest.NumeroConta = parameter.NumeroConta;

            return filtroContaContabilRequest;
        }

        /// <summary>
        /// Traduz uma coleção de Model.Parameter do tipo FiltroContaContabil para uma lista de contrato de dados do tipo FiltroContaContabilRequest.
        /// </summary>
        /// <param name="parameterList">Coleção de Model.Parameter do tipo FiltroContaContabil</param>
        /// <returns>Lista de contrato de dados do tipo FiltroContaContabilRequest</returns>
        public List<FiltroContaContabilRequest> ToFiltroContaContabilRequest(ModelCollection<Model.Parameter.FiltroContaContabil> parameterList)
        {
            List<FiltroContaContabilRequest> filtroContaContabilRequestList = new List<FiltroContaContabilRequest>();

            foreach (Model.Parameter.FiltroContaContabil parameter in parameterList)
                filtroContaContabilRequestList.Add(this.ToFiltroContaContabilRequest(parameter));

            return filtroContaContabilRequestList;
        }

        #endregion
    }
}